home *** CD-ROM | disk | FTP | other *** search
/ SGI Developer Toolbox 6.1 / SGI Developer Toolbox 6.1 - Disc 4.iso / src / demos / GL / snurb / matrix.c < prev    next >
Encoding:
C/C++ Source or Header  |  1994-08-02  |  1.3 KB  |  52 lines

  1. /*
  2.  * Copyright 1991, 1992, 1993, 1994, Silicon Graphics, Inc.
  3.  * All Rights Reserved.
  4.  *
  5.  * This is UNPUBLISHED PROPRIETARY SOURCE CODE of Silicon Graphics, Inc.;
  6.  * the contents of this file may not be disclosed to third parties, copied or
  7.  * duplicated in any form, in whole or in part, without the prior written
  8.  * permission of Silicon Graphics, Inc.
  9.  *
  10.  * RESTRICTED RIGHTS LEGEND:
  11.  * Use, duplication or disclosure by the Government is subject to restrictions
  12.  * as set forth in subdivision (c)(1)(ii) of the Rights in Technical Data
  13.  * and Computer Software clause at DFARS 252.227-7013, and/or in similar or
  14.  * successor clauses in the FAR, DOD or NASA FAR Supplement. Unpublished -
  15.  * rights reserved under the Copyright Laws of the United States.
  16.  */
  17. #include <gl.h>
  18. #include <math.h>
  19. #include "matrix.h"
  20.  
  21. Matrix identity_matrix =
  22.     {    {1.0,0.0,0.0,0.0}, 
  23.         {0.0,1.0,0.0,0.0},
  24.         {0.0,0.0,1.0,0.0},
  25.         {0.0,0.0,0.0,1.0}
  26.     };
  27.  
  28. void transform(Coord p[3], Matrix M)
  29. {
  30.     Coord x,y,z;
  31.  
  32.     x = p[0]*M[0][0] + p[1]*M[1][0] + p[2]*M[2][0] + M[3][0];
  33.     y = p[0]*M[0][1] + p[1]*M[1][1] + p[2]*M[2][1] + M[3][1];
  34.     z = p[0]*M[0][2] + p[1]*M[1][2] + p[2]*M[2][2] + M[3][2]; 
  35.  
  36.     p[0] = x;
  37.     p[1] = y;
  38.     p[2] = z;
  39. }
  40.  
  41.  
  42. void make_identity(Matrix M)
  43. {
  44.     int i,j;
  45.  
  46.     for (i=0; i<4; i++)
  47.         for (j=0; j<4; j++)
  48.             M[i][j] = identity_matrix[i][j];
  49. }                
  50.  
  51.             
  52.